﻿<?

set_time_limit('360');//ограничение времени работы скрипта
ini_set("pcre.backtrack_limit",10000000);//позволяет обрабатывать регулярками огромные строки, но жрет память (без этой строки возможны глюки работы парсера)

function GetFromWWW($url,$post='',$cookie='') {
  $curl = curl_init($url);
  curl_setopt($curl, CURLOPT_HTTPHEADER, array('Expect:'));
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($curl, CURLOPT_HEADER, 0);
  curl_setopt($curl, CURLOPT_TIMEOUT, 300);
  curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
  curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9) Gecko/2008052906 Firefox/3.0");
  if($post){
	curl_setopt($curl, CURLOPT_POST, 1);
	curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
  }
  if($cookie){
	curl_setopt($curl, CURLOPT_COOKIE, $cookie);
  }
  $content=curl_exec($curl);
  curl_close($curl);
  return $content;
}

function GetParameter($mask, $from) {
	preg_match_all($mask, $from, $into);//выбираем нужные нам параметры
	return $into;
}

function GetInnerParameter($mask_outter, $mask_inner, $from) {
$into_inner=array();
	@preg_match_all($mask_outter, $from, $into_outter);//выбираем нужные нам параметры

	for($a=0;$a<count($into_outter);$a++){
		for($b=0;$b<count($into_outter[$a]);$b++){
			preg_match_all($mask_inner, $into_outter[$a][$b], $into_inner[$a][$b]);//выбираем нужные нам параметры
		}
	}

	return $into_inner;
}

function json_safe_encode($var)
{
   return json_encode(json_fix_cyr($var));
}

function json_fix_cyr($var)
{
   if (is_array($var)) {
       $new = array();
       foreach ($var as $k => $v) {
           $new[json_fix_cyr($k)] = json_fix_cyr($v);
       }
       $var = $new;
   } elseif (is_object($var)) {
       $vars = get_object_vars($var);
       foreach ($vars as $m => $v) {
           $var->$m = json_fix_cyr($v);
       }
   } elseif (is_string($var)) {
       $var = iconv('cp1251', 'utf-8', $var);
   }
   return $var;
}
function strip_tags_array($data, $tags = null)
{
    $stripped_data = array();
    foreach ($data as $value)
    {
        if (is_array($value))
        {
            $stripped_data[] = strip_tags_array($value, $tags);
        }
        else
        {
            $stripped_data[] = strip_tags($value, $tags);
        }
    }
    return $stripped_data;
}
?>